package com.mybatisplus.demo.android.util;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * redis工具类 使redis使用同一对象操作
 */
@Component
public class RedisUtil {

    /**
     * 在过滤器中查询redis 缓存的token
     */
    @Autowired
    private StringRedisTemplate stringRedisTemplate;


    /**
     * 存入普通对象
     *
     * @param key   Redis键
     * @param value 值
     */
    public void set(String key, String value) {
        //将token缓存到redis中 便于查询  查询id是否存在 如果存在则先删除
        if (hasKey(key)) {
            delete(key);
        }
        stringRedisTemplate.opsForValue().set(key, value);
    }


    /**
     * 删除单个key
     *
     * @param key 键
     * @return true=删除成功；false=删除失败
     */
    public boolean delete(String key) {

        Boolean ret = stringRedisTemplate.delete(key);
        return ret != null && ret;
    }

    /**
     * 获取普通对象
     *
     * @param key 键
     * @return 对象
     */
    public String get(String key) {

        return stringRedisTemplate.opsForValue().get(key);
    }

    /**
     * 是否存在key
     *
     * @param key
     * @return
     */
    public boolean hasKey(String key) {
        Boolean ret = stringRedisTemplate.hasKey(key);
        return ret != null && ret;
    }
}

